package com.caregiver.watch.business.user.service;

import com.caregiver.watch.business.user.model.dto.ChatMessage;
import com.caregiver.watch.business.user.model.dto.ReadMessageParam;
import com.caregiver.watch.business.user.model.vo.ChatMessageVo;
import com.caregiver.watch.business.user.model.vo.ChatWindowVo;

import java.util.List;

/**
 * @Description: 聊天服务
 * @Author 疆戟
 * @Date 2025/8/30 8:50
 * @Version 1.0
 */
public interface ChatService {


    /**
     * 查询聊天窗口列表
     * @param recipientIds 被照护人ID列表
     * @return 聊天窗口列表
     */
    List<ChatWindowVo> queryChatWindowList(List<Long> recipientIds);


    /**
     * 查询聊天消息列表
     * @param chatWindowId 聊天窗口ID
     * @param pageNum 聊天窗口ID
     * @param pageSize 聊天窗口ID
     * @return 聊天消息列表
     */
    List<ChatMessageVo> queryMessageList(Long chatWindowId, Integer pageNum, Integer pageSize);

    /**
     * 发送聊天消息
     * @param message 消息
     * @return 是否成功
     */
    Boolean sendMessage(ChatMessage message);


    /**
     * 清空聊天消息
     * @param chatWindowId 聊天窗口ID
     * @return 是否成功
     */
    Boolean clearMessage(Long chatWindowId);

    /**
     * 已读消息
     */
    Boolean readMessage(ReadMessageParam param);

    /**
     * 删除消息
     * @param messageIds 消息ID
     * @return 是否成功
     */
    Boolean deleteMessage(List<Long> messageIds);
}
